package com.whfc.ms.api.mach.service.impl;

import com.whfc.common.result.ListData;
import com.whfc.fuum.service.SysDeptService;
import com.whfc.mach.dto.AppMachMonthDataDTO;
import com.whfc.mach.dto.MachDataStatDTO;
import com.whfc.mach.dto.MachRunDataStatDTO;
import com.whfc.mach.param.MachMonthDataParam;
import com.whfc.mach.service.AppMachDataAnaService;
import com.whfc.ms.api.mach.service.MsMachDataAnaService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author sun_guodong
 * @description
 * @date 2020-11-12
 */
@Service
public class MsMachDataAnaServiceImpl implements MsMachDataAnaService {

    @DubboReference(interfaceClass = SysDeptService.class, version = "1.0.0")
    private SysDeptService SysDeptService;

    @DubboReference(interfaceClass = AppMachDataAnaService.class, version = "1.0.0")
    private AppMachDataAnaService appMachDataAnaService;

    @Override
    public MachDataStatDTO getMachInfoData(Integer deptId) {
        // 当前用户可以看到的机构列表
        List<Integer> deptIds = SysDeptService.getDescendantDeptIdList(deptId);
        return appMachDataAnaService.getMachInfoData(deptIds);
    }

    @Override
    public MachRunDataStatDTO getMachRunData(Integer deptId) {
        // 当前用户可以看到的机构列表
        List<Integer> deptIds = SysDeptService.getDescendantDeptIdList(deptId);
        return appMachDataAnaService.getMachRunData(deptIds);
    }

    @Override
    public ListData<AppMachMonthDataDTO> getMonthDataListByType(MachMonthDataParam param) {
        // 当前用户可以看到的机构列表
        Integer deptId = param.getDeptId();
        List<Integer> deptIds = SysDeptService.getDescendantDeptIdList(deptId);
        param.setDeptIds(deptIds);
        ListData<AppMachMonthDataDTO> listData = appMachDataAnaService.getMonthDataListByType(param);
        return listData;
    }

    @Override
    public ListData<AppMachMonthDataDTO> getMonthDataListByCorp(MachMonthDataParam param) {
        // 当前用户可以看到的机构列表
        Integer deptId = param.getDeptId();
        List<Integer> deptIds = SysDeptService.getDescendantDeptIdList(deptId);
        param.setDeptIds(deptIds);
        ListData<AppMachMonthDataDTO> listData = appMachDataAnaService.getMonthDataListByCorp(param);
        return listData;
    }


}
